#include<bits/stdc++.h>
using namespace std;

int q;
int n;
int x;
bool visit[100005];

int main(){
	cin>>q;
	bool fail=false;
	for(int i=0;i<q;i++){
		queue<int> que;
		stack<int> sta;
		fail=false;
		memset(visit,false,sizeof(visit));
		cin>>n;
		for(int j=0;j<n;j++){
			cin>>x;
			que.push(x);
		}
		sta.push(-1);
		for(int k=0;k<n;k++){
			cin>>x;
			if(fail) continue;
			if(sta.top()==x){
				sta.pop();
			}
			else{
				if(visit[x]==true){
					cout<<"No"<<endl;
					fail=true;
				}
				else{
					while(!que.empty()&&sta.top()!=x){
						sta.push(que.front());
						visit[que.front()]=true;
						que.pop();
					}
					sta.pop();
				}
			}
		};
		if(!fail) cout<<"Yes"<<endl;
	}
	return 0;
}
